<?php
/**
 * @Author: xuzhiyi
 * @Date:   2016-02-01 09:35:25
 * @Last Modified by:   xuzhiyi
 * @Last Modified time: 2016-02-23 16:24:54
 * ------------------------------------------------ *
 * 开放控制器，不纳入权限控制 *
 * ------------------------------------------------ */ 

namespace Admin\Controller;
use \Think\Controller;

class PublicController extends Controller{
    public $config = array(
        'fontSize'  =>  18,              // 验证码字体大小(px)
        'useCurve'  =>  false,            // 是否画混淆曲线
        'useNoise'  =>  true,            // 是否添加杂点	
        'imageH'    =>  32,               // 验证码图片高度
        'imageW'    =>  140,               // 验证码图片宽度
        'length'    =>  4,               // 验证码位数
        'fontttf'   =>  '4.ttf',              // 验证码字体，不设置随机获取
        'bg'        =>  array(243, 251, 254)  // 背景颜色
    );

    //初始化
    public function _initialize(){
		$GLOBALS['COMMON'] = D('configs')->getConfigs();
		$this->assign('COMMON',$GLOBALS['COMMON']);
		$this->assign('admin',session('admin'));
    }

    //空操作
    public function _empty(){  
        header("HTTP/1.0 404 Not Found");//404状态码  
        $this->display("Public/404");//显示自定义的404页面模版  
    }  
                
	//获取验证码
	public function getVerify(){
		$verify = new \Think\Verify($this->config);
		$verify->entry();
	}

	//校验验证码
	public function checkVerify(){
		$verify = new \Think\Verify();
		$this->ajaxReturn( $verify->check(I('verify')));
	}
	//执行登录
	public function login(){
		if(!empty($_POST)){
            $manager = D('managers')->checkLogin();
            if($manager==false){
            	$this->error('用户名或密码错误！','',true);
            }
            session('admin',$manager);
            unset($manager);
		    $this->success('登陆成功!',U('Index/index'),true);
		}else{
			$loginName=!empty(cookie('loginName'))?cookie('loginName'):'';
			$this->assign('loginName',$loginName);
            $this->display();
        }
	}

	
	
	//退出登录
	public function logout(){
		session('admin',null);
		cookie('loginName',null);
		cookie('loginPwd',null);
		$this->redirect('Index/index');
	}
	
    //锁屏
    public function lock(){
		session('admin.isLock',1);
        $this->display();
    }
                    
    //解锁
    public function unlock(){
		$loginName =  session('admin.loginName');
		$loginPwd = I('loginPwd');
		$manager = M('managers')->where(array('loginName'=>$loginName))->find();
		
		//密码判断
		if ($manager['loginPwd'] != md5(I('loginPwd') . $manager['secretKey'])) {
			$this->error('密码错误');
			exit;
		}

		session('admin.isLock',0);                       
		//成功跳转                             
		$this->redirect('Index/index');
	}
	
	//找回密码
	public function forget(){

		//if($_POST){
			//************************ 配置信息 ****************************
			$smtpserver = "smtp.139.com";//SMTP服务器
			$smtpserverport =25;//SMTP服务器端口
			$smtpusermail = "webzhiyi@139.com";//SMTP服务器的用户邮箱
			$smtpuser = "webzhiyi@139.com";//SMTP服务器的用户帐号
			$smtppass = "060721lg";//SMTP服务器的用户密码
			$mailtype = "HTML";//邮件格式（HTML/TXT）,TXT为文本邮件
			
			$smtpemailto = '58999558@qq.com';//I('post.email');//发送给谁
			$mailtitle = "管理员重置密码";//邮件主题
			
			$skey= md5(I('post.email'));//找回密码skey
			$forgetUrl='http://'.$_SERVER[HTTP_HOST].U('Public/resetpass').'?skey='.$skey;
			$mailcontent = "<h1>密码重置</h1><hr><p>请点击链接以下前往重置<br><a href='{$forgetUrl}'>{$forgetUrl}</a></p>";//邮件内容
			
			$smtp = new \Tools\Email($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证.
			$smtp->debug = false;//是否显示发送的调试信息
			$state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype);

			if($state==""){
				$this->error("对不起，邮件发送失败！请检查邮箱填写是否有误。");
				exit();
			}
			//
			$this->success('恭喜您，邮件发送成功！', U('Index/index'));
		//}
	}
	
	public function resetpass(){
		echo "重置密码";
	}
	
	
	
        
}